/********************************************************************************
 * 文件名：ArrayTypeHandler.java
 * 版权：Copyright 2011-2017 Liebao Net Tech. Co. Ltd. All Rights Reserved. 
 * 描述： ArrayTypeHandler.java
 * 修改人：amelie
 * 修改时间：Aug 21, 2017
 * 修改内容：新增
 ********************************************************************************/
package com.caiyouxi.common.handler;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.alibaba.fastjson.JSON;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;


/*******************************************************************************
 * TODO 添加类的一句话简单描述。
 * <p>
 * TODO 详细描述
 * <p>
 * TODO 示例代码
 * 
 * <pre>
 * </pre>
 * 
 * @author weichangyong
 ******************************************************************************/
public class JSONTypeHandler extends BaseTypeHandler<Object> {

    @Override
    public Object getNullableResult(ResultSet rs, String columnName)
            throws SQLException
    {
        return JSON.parse(rs.getString(columnName));
    }
    @Override
    public Object getNullableResult(ResultSet rs, int columnIndex)
            throws SQLException
    {
        return JSON.parse(rs.getString(columnIndex));
    }
    @Override
    public Object getNullableResult(CallableStatement cs, int columnIndex)
            throws SQLException
    {
        return JSON.parse(cs.getString(columnIndex));
    }
    
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i,
            Object parameter, JdbcType jdbcType) throws SQLException
    {
        ps.setString(i, JSON.toJSONString(parameter));
    }

}